/**
 * 	Copyright 2009 RJ Regenold 
 *	
 *	Licensed under the Apache License, Version 2.0 (the "License"); 
 *	you may not use this file except in compliance with the License. 
 *	You may obtain a copy of the License at 
 *	
 *		http://www.apache.org/licenses/LICENSE-2.0 
 *		
 *	Unless required by applicable law or agreed to in writing, software 
 *	distributed under the License is distributed on an "AS IS" BASIS, 
 *	WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
 *	See the License for the specific language governing permissions and 
 *	limitations under the License. 
 */

package com.binarylion.puremvc.registration {
	import org.as3commons.lang.Assert;
	
	public class ObjectIdHandler extends AbstractHandler {
		
		/**
		 * Default constructor.
		 */
		public function ObjectIdHandler() {
			super();
		}
		
		/**
		 * @inheritDoc
		 */
		override public function handleRequest(request:*):void {
			Assert.instanceOf(request, RegistrationRequestContext, 'request must be an instance of RegistrationRequestContext');
			var r:RegistrationRequestContext = request as RegistrationRequestContext;
			if(r.command is String) {
				r.controller.registerCommandByObjectId(r.noteName, String(r.command));
			}
			else {
				successor.handleRequest(request);
			}
		}
	}
}